package com.clear.honghefinance.biz.modules.account.service;

import com.clear.honghefinance.biz.modules.account.domain.dto.*;
import com.clear.honghefinance.biz.modules.account.domain.entity.AccountBook;
import com.baomidou.mybatisplus.extension.service.IService;
import com.clear.honghefinance.biz.modules.account.domain.vo.GetAccountBookDetailVO;
import com.clear.honghefinance.biz.modules.account.domain.vo.ListAccountBookVO;
import com.clear.honghefinance.common.dto.entity.PageResult;

/**
 * <p>
 * 账套 服务类
 * </p>
 *
 * @author 程序员clear
 * @since 2024-08-20
 */
public interface IAccountBookService extends IService<AccountBook> {

    /**
     * 创建账套
     *
     * @param dto
     * @return
     */
    boolean add(AddAccountBookDTO dto);

    /**
     * 编辑账套
     * @param dto
     * @return
     */
    boolean update(UpdateAccountBookDTO dto);

    /**
     * 禁用启用账套
     * @param dto
     * @return
     */
    boolean updateDisable(UpdateAccountBookStateDTO dto);

    /**
     * 删除账套
     * @param dto
     * @return
     */
    boolean delete(DeleteAccountBookDTO dto);

    /**
     * 查询账套列表
     * @param dto
     * @return
     */
    PageResult<ListAccountBookVO> list(ListAccountBookDTO dto);

    /**
     * 查看账套明细
     *
     * @param id 账套id
     */
    GetAccountBookDetailVO getDetailById(long id);
}
